﻿using EFAPIProject.Entities;
using Microsoft.EntityFrameworkCore;
using System.Reflection;

namespace EFAPIProject.Data
{
    public class AppDbContext : DbContext
    {
        // 构造函数：接收配置选项
        public AppDbContext(DbContextOptions<AppDbContext> options) : base(options)
        {
        }

        // 可选：显式定义DbSet（便于直接通过dbContext.Users访问，不定义也可通过仓储操作）
        public DbSet<User> Users => Set<User>();
        public DbSet<Order> Orders => Set<Order>();

        // 自动加载所有实体配置
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            // 加载当前程序集中的所有配置类（YourProject.Data 程序集）
            modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
        }
    }
}
